package com.example.controller.config;

import com.example.controller.MyWebSocketHandler;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;

// 开启ws
@Configuration // 跟随项目启动，自动注入的配置
@EnableWebSocket
// 当前对象继承ws配置
public class WebSocketConfig implements WebSocketConfigurer {

    // 注册ws 重写ws处理函数
    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        // 注册路由，允许跨域 当路由为ws的时候，调用myWebSocketHandler()方法
        // 就是定义不同的路由需要不同的方法来处理
        registry.addHandler(myWebSocketHandler(), "/ws").setAllowedOrigins("*");
    }

    // 方法级的注入容器
    @Bean // 跟随项目启动的服务
    public MyWebSocketHandler myWebSocketHandler() {
        return new MyWebSocketHandler();
    }
}